const fs = require('fs')
const { API_CONFIG } = require('../../../config')

var numberToEightDiagrams = {
  1: '乾',
  2: '兑',
  3: '离',
  4: '震',
  5: '巽',
  6: '坎',
  7: '艮',
  8: '坤'
}
var numberToThings = {
  1: '天',
  2: '泽',
  3: '火',
  4: '雷',
  5: '风',
  6: '水',
  7: '山',
  8: '地'
}
var eightDiagramToLines = {
  乾: '999',
  兑: '699',
  离: '969',
  震: '669',
  巽: '996',
  坎: '696',
  艮: '966',
  坤: '666'
}
var thingsToLines = {
  天: '999',
  泽: '699',
  火: '969',
  雷: '669',
  风: '996',
  水: '696',
  山: '966',
  地: '666'
}
var lineNames = {
  61: '初六',
  62: '六二',
  63: '六三',
  64: '六四',
  65: '六五',
  66: '上六',
  91: '初九',
  92: '九二',
  93: '九三',
  94: '九四',
  95: '九五',
  96: '上九'
}
var eightDiagramToThings = {
  乾: '天',
  兑: '泽',
  离: '火',
  震: '雷',
  巽: '风',
  坎: '水',
  艮: '山',
  坤: '地'
}
var diagramToThings = {
  乾: '天天',
  坤: '地地',
  屯: '水雷',
  蒙: '山水',
  需: '水天',
  讼: '天水',
  师: '地水',
  比: '水地',
  小畜: '风天',
  履: '天泽',
  泰: '地大',
  否: '天地',
  同人: '天火',
  大有: '火天',
  谦: '地山',
  豫: '雷地',
  随: '泽雷',
  蛊: '山风',
  临: '地泽',
  观: '风地',
  噬嗑: '火雷',
  贲: '山火',
  剥: '山地',
  复: '地雷',
  无妄: '天雷',
  大畜: '山天',
  颐: '山雷',
  大过: '泽风',
  坎: '水水',
  离: '火火',
  咸: '泽山',
  恒: '雷风',
  遁: '天山',
  大壮: '雷天',
  晋: '火地',
  明夷: '地火',
  家人: '风火',
  睽: '火泽',
  蹇: '水山',
  解: '雷水',
  损: '山泽',
  益: '风雷',
  夬: '泽天',
  姤: '天风',
  萃: '泽地',
  升: '地风',
  困: '泽水',
  井: '水风',
  革: '泽火',
  鼎: '火风',
  震: '雷雷',
  艮: '山山',
  渐: '风山',
  归妹: '雷泽',
  丰: '雷火',
  旅: '火山',
  巽: '风风',
  兑: '泽泽',
  涣: '风水',
  节: '水泽',
  中孚: '风泽',
  小过: '雷山',
  既济: '水火',
  未济: '火水'
}
var diagramToPortraits = {
  乾: '上乾下乾 纯阳卦',
  坤: '上坤下坤 纯阴卦',
  屯: '上坎下震',
  蒙: '上艮下坎',
  需: '上坎下乾',
  讼: '上乾下坎',
  师: '上坤下坎 ',
  比: '上坎下坤',
  小畜: '上巽下乾',
  履: '上乾下兑',
  泰: '上坤下乾',
  否: '上乾下坤',
  同人: '上乾下离',
  大有: '上离下乾',
  谦: '上坤下艮',
  豫: '上震下坤',
  随: '上兑下震',
  蛊: '上艮下巽',
  临: '上坤下兑',
  观: ' 上巽下坤',
  噬嗑: '上离下震',
  贲: '上艮下离',
  剥: '上艮下坤',
  复: '上坤下震',
  无妄: '上乾下震',
  大畜: '上艮下乾',
  颐: '上艮下震',
  大过: '上兑下巽',
  坎: '重坎 八纯卦 ',
  离: '重离 八纯卦',
  咸: '上兑下艮',
  恒: '上震下巽',
  遁: '上乾下艮',
  大壮: '上震下乾',
  晋: '上离下坤',
  明夷: '上坤下离',
  家人: '上巽下离',
  睽: '上离下兑',
  蹇: '上坎下艮',
  解: '上震下坎',
  损: '上艮下兑',
  益: '上巽下雷',
  夬: '上泽下乾',
  姤: '上乾下巽',
  萃: '上兑下坤',
  升: '上坤下巽',
  困: '上兑下坎',
  井: '上坎下巽',
  革: '上兑下离。',
  鼎: '上禹下巽',
  震: '上震下震 八纯卦',
  艮: '上艮下艮 八纯卦',
  渐: '上巽下艮',
  归妹: '上震下兑',
  丰: '上震下离',
  旅: '上离下艮',
  巽: '上巽下巽 八纯卦',
  兑: '上兑下兑 八纯卦',
  涣: '上巽下坎',
  节: '上坎下兑',
  中孚: '上巽下兑',
  小过: '上震下艮',
  既济: '上坎下离',
  未济: '上离下坎'
}

var diagramToIntroduces = {
  乾: '天道、君道，阐释天道，是人类至高无上的行为规范。',
  坤: '地道、 臣道，阐释地的法则，即君子之行应安静、方正、包容，而不排斥。',
  屯: '生的艰难，阐释人在天地间，从草创时就应采取的进取态度，在处于进退两难时当以退守自保、求得平安。',
  蒙: '启蒙、教育，阐释草创时期启发民智的重要性。',
  需: '踌躇、期待，阐释草创时期等待时机的原则。',
  讼: '争论、诉讼，阐释在事业进行中不可争讼的道理。',
  师: '军队、战争，阐释不可重用小人的道理。',
  比: '相亲、依附，阐释依附他人的道理。',
  小畜: '蓄积、阻碍，阐释因应一时困顿的原则。',
  履: '实践、履行，阐释评价成败的原则。',
  泰: '亨通、泰平，阐释持盈保泰之道。',
  否: '闭塞、黑暗，阐释小人势长、君子势消时的应对之道。',
  同人: '集结、和同，阐释和而不同之道。',
  大有: '收获、成功，阐释对待成功的因应之道。',
  谦: '谦逊美德，阐释谦卑之道。',
  豫: '喜悦、安乐，阐释和乐之道。',
  随: '随从、随和，阐释引人追随之道。',
  蛊: '腐败、革新，阐释振疲起衰之道。',
  临: '迫临、临下，阐释领导原则。',
  观: '观模、展示，阐释让人瞻仰之道。',
  噬嗑: '咬合、刑罚，阐释施刑之道。',
  贲: '装饰，阐释礼仪之道、反朴归真之道。',
  剥: '剥落、浸蚀，阐释应对败落的原则。',
  复: '复归、复来，阐释在衰落中恢复的原则。',
  无妄: '不虚伪望外，阐释不妄为的道理。',
  大畜: '大蓄、大阻，阐释避免轻举妄动的原则。',
  颐: '口、养，阐释颐养之道。',
  大过: '过度、非常，阐释采取危险的非常行动的原则。',
  坎: '陷阱、重险，阐释突破险难时应步步为营的原则。',
  离: '附着、阳升，阐释在遇险时攀附他人的原则。',
  咸: '感应、夫妇，阐释以夫妇感应原则处事的道理。',
  恒: '恒久、恒常，阐释恒久的道理。',
  遁: '退避、隐遁，阐释退避之道。',
  大壮: '壮大、隆盛，阐释使人壮大之道。',
  晋: '前进、晋升，阐释求取晋升之道。',
  明夷: '负伤、韬晦，阐释在苦难和被残害时的求吉之道。',
  家人: '家庭伦理，阐释治家之道。',
  睽: '乖离、乖异，阐释对离与合、异与同的运用原则。',
  蹇: '跛脚、困难，阐释面对困境时的原则。',
  解: '解除困难，阐释解除困境的方法。',
  损: '减少损失，阐释减损的原则。',
  益: '增多、受益，阐释增益的原则。',
  决: '切断、决裂，阐释决断小人的原则。',
  逅: '邂逅相遇，阐释应对邂逅的原则。',
  萃: '聚集，阐释让人聚集、服从之道。',
  升: '上升，阐释求取升进之道。',
  困: '穷困，阐释解救穷困之道。',
  井: '水井、用贤，阐释用贤与涵养的道理。',
  革: '变革、改革，阐释会产生变革的原则。',
  鼎: '食器、贤器，阐释养贤用人之道。',
  震: '震动、戒惧，阐释应对意外震惊之道。',
  艮: '停止，阐释适可而止之道。',
  渐: '渐进，阐释渐进之道。',
  归妹: '婚嫁，阐释得到美好婚姻的原则。',
  丰: '盛大，阐释盛衰无常的道理。',
  旅: '旅行、不安，阐释求得静的道理。',
  巽: '进入、谦逊，阐释谦逊以收揽人心的道理。',
  兑: '喜悦、取悦，阐释掌握和悦可亲的分寸原则。',
  涣: '涣散，阐释在处于丰盛安逸的环境时，挽救涣散的原则。',
  节: '节制、节约，阐释节俭的原则。',
  中孚: '心中诚信，阐释立身处事之本',
  小过: '小的过度，阐释在行动时过度与收敛的道理。',
  既济: '完成，阐释成功后在盛极必衰时减少损失的原则。',
  未济: '未完成，阐释在接近成功时，在最危险、关键、成败立决的时刻，应采取的应对原则。'
}

var portraitToDiagrams = {
  天天: '乾',
  地地: '坤',
  水雷: '屯',
  山水: '蒙',
  水天: '需',
  天水: '讼',
  地水: '师',
  水地: '比',
  风天: '小畜',
  天泽: '履',
  地天: '泰',
  天地: '否',
  天火: '同人',
  火天: '大有',
  地山: '谦',
  雷地: '豫',
  泽雷: '随',
  山风: '蛊',
  地泽: '临',
  风地: '观',
  火雷: '噬嗑',
  山火: '贲',
  山地: '剥',
  地雷: '复',
  天雷: '无妄',
  山天: '大畜',
  山雷: '颐',
  泽风: '大过',
  水水: '坎',
  火火: '离',
  泽山: '咸',
  雷风: '恒',
  天山: '遁',
  雷天: '大壮',
  火地: '晋',
  地火: '明夷',
  风火: '家人',
  火泽: '睽',
  水山: '蹇',
  雷水: '解',
  山泽: '损',
  风雷: '益',
  泽天: '夬',
  天风: '姤',
  泽地: '萃',
  地风: '升',
  泽水: '困',
  水风: '井',
  泽火: '革',
  火风: '鼎',
  雷雷: '震',
  山山: '艮',
  风山: '渐',
  雷泽: '归妹',
  雷火: '丰',
  火山: '旅',
  风风: '巽',
  泽泽: '兑',
  风水: '涣',
  水泽: '节',
  风泽: '中孚',
  雷山: '小过',
  水火: '既济',
  火水: '未济'
}
var diagramToDescriptions = {
  乾: '乾卦阳刚，刚健，自强不息。乾六爻皆盈滴，故肥园，园满、亭通，成功、重大。但刚多易折，含欠安之象。人物表示为上级、领导、当官的，执法者，有钱而富贵者，司机。',
  坤: '坤卦阴柔，地道贤生；厚载万物，运行不息而前进无疆，有顺畅之象。坤六爻皆虚，断有破裂之象，明暗、陷害、静止，测出行不走，行人不归。人物表示小人（由天大地小而取）。',
  屯: '屯卦木得天雨而沐之，或雷而交加，面对困难而思慎之象。坎为险，震为动，屯积、盈、物之始、聚顿挫，初始虽艰难，但不失其居处和立业。“以贵下溅，动于险中，忧患中深谋远虑。”坎为伸，则泄气无财，失脱。震为体且受生而获财升职。防肝病、衰血症，肾亏等，患在长男。',
  蒙: '蒙卦山下有水，山下有险，险而止，阴陷而不定，复杂而显著。童蒙，蒙味，启蒙，教育，教化。昏，沉。跌落在水中之夹或肾结石，泌尿系统结石，耳闭，失聪。艮为体，有辛劳之财，坎为体，有灾事，不利中男。',
  需: '需卦阴云在天，艰险在前，需侍时而进，需要，等待，期待。担当险难，有所欲求。有聪明才智。坎为体，有财官之喜，利中男，乾为体，且泄气，失脱，灾病，降职丢官。',
  讼: '讼卦，天下着雨，上刚下险。宫非口舌，争讼，不亲近，孚信被窒息。内心聪明。在体、用于人身疾病上与需卦同解。',
  师: '师卦，地下藏水、矿泉水、地下水，小人内心阴险狡诈。聚集群众，兴师动众，统领，统帅，军队，保守稳定，忧虑。“容民畜众，忠国怀臣。”坤为体，谋事可成，坎为怀有灾病。肾病，泌尿系统粉末状结石；腹泄，大便溏泻。母有病，不利中男，女人当权，遭妇辱。',
  比: '比卦，地上有水渗透，辅助互比，亲善帮助，比试，快乐。”至诚相知，相与相应。”聪明之妇。在体、用于人身疾病方面与师卦同解。',
  小畜: '小畜卦，天上起凤，满天风云，强健如顺风而行，积少成多，留住，“德积载法”，济养。巽卦为体，有灾，金属器物之伤，上司批评，受压制，乾卦为体谋事可成，但付出较多，来回奔劳活动，用权力压服他人。胆经之疾，风寒。不利妇女，男人专权，克妇。',
  履: '履卦，园而有缺损，刚中有险。履行，慎行，小心，行为履践，行不逾礼，不处非礼。有官灾是非争执，交通意外金属所伤。比和卦，事吉。乾为父，兑为少女，老少配、不利婚，有破损变故之虑。防肺、呼吸道疾病，金旺克木，有肝胆之病，口腔之疾。头疼之疾。',
  泰: '泰卦,大地之气相交，小往大来。安泰亨通，通泰，安稳，持盈，宏大，事吉。“无往不所，艰难守正，降尊从贤。”坤为体则泄气失脱，迎奉权贵，乾为体且有发财升宫之喜。得妇人之助，众人之拥戴。有胃寒之疾。',
  否: '否卦，天清在上，地浊在下，天地之气不相交。闭塞不通，阻隔，事不顺畅。“大人否亨，内小人而外君子。”在体、用及人身疾病方面与泰卦同。另防颈椎增生。僵直之疾。',
  同人: '同人卦，日挂中天，照耀着天下旷野万物，“旷达无私以同人，同心之言”，志同道合，人相亲近，为人友好。发热的，烫灼的金属物，金属电器物件，锅炉。乾为体有灾，离为体谋事可成。与子女有争执，肺、呼吸系统有疾，有血管硬化症，不利老父长男。',
  大有: '大有卦，离火丽日，满天霞光。富其所有，所有众多，大有收获，“自助人助，万物所归。”在体、用及人身疾病方面与同人卦同解。另防脑血管硬化破裂。',
  谦: '谦卦地中藏有矿石财富。恭敬合礼，屈己下人，退让而不自满，谦虚退让，轻己尊人，“劳谦君子的盛德，内充实。”比和卦，事吉。测婚老母配少男，有婚变之兆，（互卦又藏坎险）有脾胃病，便结，肾虚之疾。',
  豫: '豫卦，平地一声雷，或春雷一声，震惊百里，惊天动地，影响大，名气响亮。享受安乐，悦逸豫乐，乐而懈怠，发令号召，需知随时之义，出人头地，根深蒂固。震为体，求财可得，利获地产，坤为体，凶。四十岁建功立业，四十八岁名传四海。不吉且赌博好饮，田圆废尽，官灾是非，桎锆难逃。有足疾，肠胃病，伤内筋，肾虚不利妇。',
  随: '随卦上口说下行动，言必行，言行一致，怒吼争吵，相随相从，无故追随，随众，跟随，天下的事物都要随时而动。兑为体事可说动，说成功，震为体枉费口舌行动，反有灾咎，受拖累。克长子，有血光灾，金属利器伤身，破相，官非口舌，肝病、抽筋、喃语。',
  蛊: '蛊卦山下有风，风被山阻止不流通，静止不动，腐败之象。蛊惑，败家子，侵饰，发生事端之凶，治理整顿。任凭大风劲吹，我自巍然不动而静守。良为体凶，巽为体谋事可成，小孩多病，损小口。脾胃欠佳，鼻敏感，嗅觉灵，背沉，足患，有被蛇、犬、牛咬伤惊吓之险。',
  临: '临卦地下有洞穴，有泉涌。临近，亲临。喜临、喜悦，亲自参与，以上抚下，以尊莅卑。聚众美德于一生。“至诚至临的人生，刚正和顺化育不息。”坤为体失脱破耗。兑为体有坐享其成之福。利小女，为母亲之掌上明珠，享厚爱眷爱。测婚老母配少女，必婚变。肚疴，腹部动手术，身上有疤痕。',
  观: '观卦风行地上，和风轻拂大地，观望、追求、临观、观赏、观察了解、惩罚告诫。“察民情，设教化。”巽为体，谋事可成，坤为体有灾。有是非，健康差，咎当主母，女夺母权。有肠胃病、伤脾、呼吸道疾病，下肢瘫痪，半身不遂之症、风湿。观又为大艮大止，有静观不动之意。',
  噬嗑: '噬嗑卦，火得木生，电闪雷鸣。吃而合之，嚼碎口中之物，有口福，食。断决狱情，除暴安民。人脾气大，易激动。发电站，离为体，财官旺，震为体，失脱破耗。高烧，心脏病，心悸，心跳过速，亢奋而引起脑血管患疾，肝火旺。',
  贲: '贲卦，山下有火，万物披其光彩，装饰、修饰，美，收拾，礼仪，迎婚，求婚。祭奠，有令人愉快的事发生，喜庆，子孙旺昌，田园富盛，有横财。火山。良为体大吉，离为体泄气失脱破耗。测数顶多为三，利小子。心血瘤、血液循环不畅，心肌梗阻（梗塞）。',
  剥: '剥卦，高山附地，高附于卑，刚阳剥落，剥掉，剥击，烂，跌伤，老人归山入墓，床。阴盛阳衰，小人道长，小人得势，女人得此卦为女中豪杰，中帼英雄，女能人，女强人。余与谦卦相同，另有下肢疲软无力之象。跌伤，摔伤，有归山人上之象。',
  复: '复卦，地震之卦。一阳复起，阳刚始生，万物亨通。“阳刚复回，君子道生。”返回，回复，复兴，初兴，来复，反复，自我奋斗，踏实稳重进取。在体用及人身疾病方面与豫卦同。另有静思，有较大的闷脾气，神经分裂症。',
  无妄: '无妄卦，天下雷行，晴天霹雳，意外之意外；妄行则有意外之灾，得意忘形而取灾。无所期望，无虚妄。不切实际的幻想，惊天之大事。真实客观，“诚化之生生大有，尽人道而合天德，活力而健。”乾为体，谋事成功，利财官，震为体，有灾，事难成，多争执，上司压制批评，多小人。克长男，伤足，头痛，头鸣，肝症，肝肥大，肝硬化。',
  大畜: '大畜卦，登高山而纵观天下事。大莫若天，止莫若山，乾为进，艮为止，不让前进，时时存蓄，大的积蓄；大的等待。笃实刚健，勤劳不息，从而畜和富有，充实。蕴畜、畜止。山中蕴藏有金属矿石，下面藏有金玉珠宝钱币。坟墓，坟包内有僵尸象。艮为体，失脱破耗，孝顺父辈，迎奉讨好上司。乾为体，获意外之大财，升职、成大业。脾虚胃寒、骨质增生、骨瘤病疾。小子体虚。',
  颐: '颐卦，二阳爻在外，外实内虚，外刚内柔，外强中干。停止行动，停止思想。蕴动的火山。颐养，自养，自求口实节饭食，养生之道。君子情言语，养之以正。“致灵龟，养长生。”艮为体，受克有灾，事难成，不利小子。震为体，操心事可缓成。伤足，脾胃病，活动受制不便，背沉痛，胆结石，从高处跌伤，筋伤骨折，肝部之疾。',
  大过: '大过卦，二阴爻在外而虚，断折，为栋粱挠曲之象。卦为大坎卦象，坎为险，则大险，阳刚过中，大过则事物颠倒,有大灾险。出风头而致口舌官非。坎主智，大过为大坎象，主大智大慧，明敏，水灵，大能耐。“大过之人，才能独立斯世，建立非常的大事功大德学。”汽管破裂，柜象，车速过快而出祸事。兑为体，卖弄口舌。事可大成。巽为体，有毁折之大灾。克长女，不利婚，二女同居吵吵闹闹。哮喘病,股受折伤，肝经疾病，上下明暗破相，受金属利器所伤，呕血早夭，桃花劫。',
  坎: '坎卦为二坎相重，阳陷阴中，险陷之意，险上加险，重重险难，天险，地险。险阳失道，渊深不测，水道弯曲，人生历程曲折坎坷。绝颠聪明，“心诚行有功”。比和卦，谋事顺畅可成，但内中有波折。肾，泌尿系统疾病，血病，妇科病，视力差，心脏病。',
  离: '离卦离明两重，光明绚丽，火性炎上，依附团结。离散，离开，分离。凡八纯卦互为依托帮助，但又具同性相斥之性。虽比和，但内有冲突，谋事可成，却有周折，目疾，心脏疾病，高血压，肺虚症。',
  咸: '咸卦，兑气在上，艮气在下，刚柔两气相咸，相应，迅速。“只说不行，道听途说。”山塘水库，火山口，山洞穴，吊井。兑为体，财帛可得，艮为体大破耗，破损。口腔溃疡，腿跛，刀伤，跌伤引起明暗破相。',
  恒: '恒卦，雷动风散，阴阳比和，永恒持久，恒心，相得益彰。昧事无常，运气反复，时好时坏，“忧患中求成功之道。”乳痛，肝胆病，脾胃功能差。比和卦，事顺可成，求财官婚姻均吉，多得人助。',
  遁: '遁卦，天高于上，天下有山，山止于地，远山人藏，遁山不进，退避隐匿。超脱行事，远小人。高位，高的金属塔架，电视转播塔，大山，高山。在体、用及人身疾病方面与大畜卦同。',
  大壮: '大壮卦雷行于天，强盛壮大，“刚阳充沛，壮在正大。”壮盛则止，刚极则伤至，凶危，无定处。在体、用及人身疾病方面与无妄卦同。',
  晋: '晋卦日自地平线上升起，前进光明，离日自照，晋升上进，白天。“光明磊落，延同类以升进，厚礼广思，大明接物，自沼明德。”离为体失落破耗，坤为体则有进财荣耀之喜。婚事不佳，防变故。视力差，心衰竭，血病，胃邪火。',
  明夷: '明夷卦光明入地中，晦暗之象。伤夷，黑暗，明伤，诛杀，昏暗世时。“忧患之人文生命，内之明外柔顺以蒙大难。”在体，用及人身疾病方面与晋卦同。',
  家人: '家人卦风自火出，风助火势，一家之人，家庭亲友，友人同辈，朋友，自己人，同道，团聚于内。风驰电掣。风散火易熄。喜庆，文明，和乐富有之家。巽为体财不聚。离为体学业有成，高烧，心脏病，血液病，股部炎症。',
  睽: '睽卦火炎于上，泽睽于下，二女同居，其志不同，睽违乖异，乖润违于外。瞧，看，观察，观望，留意。发光的金属物，电热水壶，杯，电视。离为体谋事可成，兑为体有血光之灾。烧伤，利器伤，口腔炎症，，呼吸道炎症，低血压。火灾，暗破相。',
  蹇: '蹇卦高山流水，坎在前，艮止于后，险难当前，、灾难。交通受阻，飞山越海，远渡重洋。“愈担当艰难愈生发智慧，见险在前，从容镇定，待时兴发。”瀑布。坎为体，有灾。艮为体，利求财。肾病，泌尿系统病，肾与泌尿系统结石，血液病，脚疾，手指疾，耳闭塞。',
  解: '解卦蛟龙得水，坎险之中而动兔险难，雷雨交作，阴阳和畅，百物松懈泽润、解脱，缓解，解除灾难,解散，解决，瓦解。“雷雨动，万物生发。”在体、用及人身疾病方面与屯卦同解。',
  损: '损卦山下有泽，山高泽深，损其深，增其高，减损，破损，毁损，损失，减少，衰之始，伤。君子“损以修德，损以修己，损以益。”在体、用及人身疾病方面与咸卦同解。另有内破相，腿脚伤残。',
  益: '益卦风雷交加，损上益下，互相增益，受益。盛之始，贞洁。“克己而益千万人。”在体、用及人身疾病方面与恒卦同解。',
  夬: '夬卦泽上于天，高天飞云。决断，决去，断绝关系，果断，了结，结束，切断，消除。“果决其所当决，健而悦，决而和。”长辈，上司喜悦，得长辈，上级领导之帮助，作事则美中不足，常不尽如人意。头部有破相。在体、用及人身疾病方面与履卦同解。',
  姤: '姤卦天下起风，阴渐长盛，君王发布文告，施行命令，告知四方。柔遇刚则壮，遭遇沟通，命令。一阴敌五阳，女壮勿娶。腿部有破相。在体、用及人身疾病方面与小畜卦同解。',
  萃: '萃卦泽于地上，地上有坑洼水溏沟渠、井口。和顺而欢悦集聚，聚中，会合，吸收，吸取，聚众美而悦。头部有破相，下肢疲软无力，小人，后母，妾。在体用及人身疾病方面与临卦同解。',
  升: '升卦木生于地中，长而益高。上升，不下来，破土而出，竹简。坟葬。中风脑溢血，腿足有破相。在体、用及人身疾病方面与观卦同解。',
  困: '困卦坎在兑下，河泽无水。穷困，危机，遭遇艰难，灾难病痛齐致，毁灭性的灾难，病症，事不顺，守已待时。头部有破相，有水厄，2岁，6岁，20岁，26岁，62岁有灾病。在体、用及人身疾病方面与节卦同解。',
  井: '井卦木人水出，提井水之象，通达，畅达，滋养，固。“劳苦，稳慎，处忧患，常固不迁。”水中植物，海带，海草。坎为体失脱破耗，巽为体有进益之喜，谋事吉。有水厄，风湿痛，胆病，肾虚症。',
  革: '革卦兑为泽为水为开口锅，革卦离火煮水，水火相息，变化更新，变革除旧，有论狱之事。创新，革新，不守旧，革命，流血，受伤。头部有破相。在体、用及人身疾病方面与睽卦同解。',
  鼎: '鼎卦木助火旺，烹饪食物。上下不畅，不大顺利，不停的更新，立新，鼎立，问鼎夺冠。折足，跛脚。“凝重安定以新命，去浮华以用实才，火木相生，木火得当。”在体、用及人身疾病与家人卦同解。',
  震: '震卦重雷交叠，相与往来，震而动起出。震动，震惊鸣叫，惊惕，再三思考，好动。建功立业，声名大振。森林，树林。八纯卦，吉顺而有波折，肝旺易怒，惊恐，肝病，抽筋，伤脾胃。',
  艮: '艮卦山外有山，山相连。不动，静止，停止，克制，沉稳、稳定，止其所欲，重担。两桌、两床相连，上下铺位，床上、桌下。测外出，不能出行，行人不归。癌症，青春痘，痧菲子，肿瘤，疮块，脾胃病，肾病，结石症。',
  渐: '渐卦山上草木渐长干山，草木积而成山包草堆。渐进，有序，逐渐。一步步前进。山欲静，风不止。“内止静，外巽顺，活动不穷。”车速过快风行于山颠，有车祸之险，嘻戏跑动而跌伤。在体、用及人身疾病方面与蛊卦同解。',
  归妹: '归妹卦泽上有雷，进必有所归，女子归宿，归家，回归“说以动婚姻，天之大义，人之始终，悦以动。”在体、用及人身疾病方面与随卦同解。',
  丰: '丰卦雷电交作，光明而动，而获盛大硕果，欢乐盛大。丰富丰盛致极则多事故，冲动，暴躁，激动引发心脏病。在体、用及人身疾病方面与噬嗑卦同解。',
  旅: '旅卦山上有火。旅行，旅居在外，外出。亲朋寡少。不安定象。火灾，火山，火把，烟火台。“居不安，而道不废，火丽高而明而慎。”心脏停止跳动，目定眼呆滞一付死相。在体、用及人身疾病方面与贲卦同解。',
  巽: '巽卦 “柔而又柔，前风往而后风复兴，相随不息，柔和如春风，随风而顺。”巽顺，顺从，进入而下伏。重巽申令，气功，双床双桌相并连，作生意可获三倍之利，头发稀少，草木丛生。活跃，坐不住，静不下来，测事比和吉。肝胆疾病，坐骨神经痛，股部疼痛，风湿中风，脾胃欠佳。',
  兑: '兑卦喜悦可见，快乐照临人，口若悬河，善言喜说，高兴，沼泽地，洞穴，废穴，败壁破宅，坑洼地，纵横沟渠。测事如意悦心。口疾，气管疾病，肺疾，麻脸，肝胆疾症，股疼，血光灾，作手术。',
  涣: '涣卦木漂于水，水面起风，船行于水上。涣散，离散，“济险有具”。在体、用及人身疾病方面与井卦同解。',
  节: '节卦河泽水满，仍需节制节约用水，停止奢侈、俭约。水溢，盛水液的容器，流脓血的创口，口腔疾病（口、齿、舌、咽喉等），咳嗽、痰喘、尿道口、肛门疾病、血压低、外伤、气管病、气虚、头部伤。坎为体，事可成；兑为体，有灾或病，破耗则事难成。',
  中孚: '中孚卦为大离卦象，孚信，诚信相感，信守中道，胸有成竹。无定向，心不定。有议狱之事。外刚内柔，外实内虚。在体、用及人身疾病方面与大过卦同解。',
  小过: '小过卦为大坎卦象，高山霹雷，山大雷小，小有所过；有所超过，隐伏危险，但以静制动，“小过常以成大业。”在体、用及人身疾病方面与颐卦同解。',
  既济: '既济卦坎水在上，离火在下，水火相交，二气相感，大功告成。矛盾着的两个事物相辅相济，促成事业完成。但既济之极，险体在上，需思患预防。坎为体，事可成，离为体有灾。婚姻正配，情投意合。有火，水之厄，视力差，风湿性心脏病。血液病，肾脏病。',
  未济: '未济卦火在水上，二气不相交，事尚未成功，事不利，没有终结，永无终止。男人困穷。在体、用及人身疾病方面与既济卦同解。'
}
var numberToDiagrams = {
  666666: '坤',
  666669: '复',
  666696: '师',
  666699: '临',
  666966: '谦',
  666969: '明夷',
  666996: '升',
  666999: '泰',
  669666: '豫',
  669669: '震',
  669696: '解',
  669699: '归妹',
  669966: '小过',
  669969: '丰',
  669996: '恒',
  669999: '大壮',
  696666: '比',
  696669: '屯',
  696696: '坎',
  696699: '节',
  696966: '蹇',
  696969: '既济',
  696996: '井',
  696999: '需',
  699666: '萃',
  699669: '随',
  699696: '困',
  699699: '兑',
  699966: '咸',
  699969: '革',
  699996: '大过',
  699999: '决',
  966666: '剥',
  966669: '颐',
  966696: '蒙',
  966699: '损',
  966966: '艮',
  966969: '贲',
  966996: '蛊',
  966999: '大畜',
  969666: '晋',
  969669: '噬嗑',
  969696: '未济',
  969699: '睽',
  969966: '旅',
  969969: '离',
  969996: '鼎',
  969999: '大有',
  996666: '观',
  996669: '益',
  996696: '涣',
  996699: '中孚',
  996966: '渐',
  996969: '家人',
  996996: '巽',
  996999: '小畜',
  999666: '否',
  999669: '无妄',
  999696: '讼',
  999699: '履',
  999966: '遁',
  999969: '同人',
  999996: '逅',
  999999: '乾'
}
var numberToLines = {
  666666: {
    61: '足踏霜花，坚冰快化。',
    62: '行为方正，自然获益。',
    63: '含而不露，功成不居。',
    64: '扎紧袋口，舍誉防过。',
    65: '功位虽高，谦顺则吉。',
    66: '较量激烈，流血黑黄。'
  },
  666669: {
    62: '返归正道，仁爱礼贤。',
    63: '屡错屡改，有险无咎。',
    64: '一心归正，不受干扰。',
    65: '诚稳改过，持中自考。',
    66: '迷而不复，内忧外患。',
    91: '有过即改，重在修身。'
  },
  666696: {
    61: '严于律己，无纪犹败。',
    63: '多头指挥，必然失败。',
    64: '留有余地，灵活机动。',
    65: '扑猎于田，子帅徒辅。',
    66: '论功行赏，小人勿重。',
    92: '行为适中，上宠下安。'
  },
  666699: {
    63: '口舌讨好，非德非才。',
    64: '亲近无间，得人善应。',
    65: '以智服人，此法最佳。',
    66: '宽厚待人，可得人心。',
    91: '以德感人，不用权势。',
    92: '以身作责，感召顺命。'
  },
  666966: {
    61: '谦谦君子，横渡江河。',
    62: '谦而纯正，一呼百应。',
    64: '谦德有则，顺上让下。',
    65: '虚怀大度，柔可用刚。',
    66: '以德出师，其征必克。',
    93: '劳谦君子，万人信服。'
  },
  666969: {
    62: '轻伤自治，被囚顺克。',
    64: '知其昏暗，不如离开。',
    65: '应变得宜，光明在胸。',
    66: '光明在天，黑暗坠地。',
    91: '垂翼低飞，三日不食。',
    93: '擒贼擒王，守正待时。'
  },
  666996: {
    61: '万事俱备，大吉大利。',
    64: '岐山祭祀，无祸有吉。',
    65: '沿阶渐升，大可得志。',
    66: '昏昏而上，可止可衰。',
    92: '心诚薄祭，无咎有喜。',
    93: '青云直上，如入虚境。'
  },
  666999: {
    64: '虚心相交，不约同行。',
    65: '以妹相嫁，上下同心。',
    66: '城墙坍塌，罪应责己。',
    91: '同仁共赴，一进俱进。',
    92: '大度同渡，勿弃勿邦。',
    93: '地可变塘，去可复返。'
  },
  669666: {
    61: '安乐过度，乐极生凶。',
    62: '坚持信念，不为乐惑。',
    63: '看人脸色，虽乐不当。',
    65: '守正防病，以葆长寿。',
    66: '昏沉贪乐，何可长久。',
    94: '与人同乐，朋友便多。'
  },
  669669: {
    62: '静对巨损，七日复得。',
    63: '不须惶恐，沉着应对。',
    65: '心存恐犋，权仗方安。',
    66: '惊恐必险，预省免灾。',
    91: '心存恐惧，笑在其后。',
    94: '意外之厄，身陷泥潭。'
  },
  669696: {
    61: '安静自守、不会惹祸。',
    63: '乘车载物，遇盗来夺。',
    65: '君子维胜，小人维邪。',
    66: '箭射恶鸟，功城患除。',
    92: '打猎除害，获狐得箭。',
    94: '清除小人，朋至诚处。'
  },
  669699: {
    63: '作姐不遂，作妹陪嫁。',
    65: '圆不十分，嫡未胜侧。',
    66: '提筐无物，宰羊无血。',
    91: '跛女偏房，能行为吉。',
    92: '眼盲能视，性静宜守。',
    94: '该嫁未嫁，以待时机。'
  },
  669966: {
    61: '逆时上飞，凶险难避。',
    62: '越祖见母，君后见臣。',
    65: '西风无雨，绳箭枉射。',
    66: '无刚而上，天灾人祸。',
    93: '不肯防卫，有伤有险。',
    94: '去柔亦险，不动非安。'
  },
  669969: {
    62: '白日见星，猜疑必生。',
    65: '文彩相饰，有庆有誉。',
    66: '深居不出，自我封闭。',
    91: '投奔配对，相帮无害。',
    93: '断臂难动，无为而安。',
    94: '白日见星，不如早奔。'
  },
  669996: {
    61: '求之过急，适得其反。',
    65: '过于柔顺，妇吉男衰。',
    66: '久必生变，无法阻止。',
    92: '持之以久，守成以恒。',
    93: '德不常恒，无处容身。',
    94: '错位错行，焉能有获。'
  },
  669999: {
    65: '失羊于场，其势见衰。',
    66: '触蕃挂角，角利则祥。',
    91: '过于自信，进将招险。',
    92: '以柔济刚，刚中有柔。',
    93: '小人恃强，壮羊撞蕃。',
    94: '撞蕃脱角，行车用坚。'
  },
  696666: {
    61: '真诚亲近，互利生吉。',
    62: '诚出内心，不失身份。',
    63: '与邪者亲，不亦悲乎！',
    64: '与贤者亲，乃上进也。',
    66: '失之交臂，后晦不及。',
    95: '网开一面，切勿强求。'
  },
  696669: {
    62: '转马求婚，十年孕生。',
    63: '追鹿孤陷，无望舍之。',
    64: '退而先媾，求婚必许。',
    66: '欲进又退，混沌自悲。',
    91: '磐桓思进，行正得尊。',
    95: '小步恩拢，大步正防。'
  },
  696696: {
    61: '重险陷渊，凶兆乃现。',
    63: '前后皆险，原地暂扎。',
    64: '隔窗送食，以表心意。',
    66: '被捆棘丛，困久遭凶。',
    92: '既已入险，小步慎脱。',
    95: '即将脱险，何不纵跃。'
  },
  696699: {
    63: '不能节制，有悔无过。',
    64: '约之以度，自然亨通。',
    66: '苦节苦熬，应防生凶。',
    91: '足不出户，严于自律。',
    92: '不知节措，亦然生险。',
    95: '节为美德，持久生吉。'
  },
  696966: {
    61: '往前险阻，退后安闲。',
    62: '尽心尽力，虽败无尤。',
    64: '往前受阻，回头求援。',
    66: '联内顺尊，可建大功。',
    93: '前有险阻，不如回头。',
    95: '险阻重重，有朋来助。'
  },
  696969: {
    62: '妇失坐帘，七日自回。',
    64: '彩绸变破，应加防戒。',
    66: '头部沾湿，盛极必衰。',
    91: '牵腰湿后，前后难顾。',
    93: '伐鬼三年，小人勿用。',
    95: '东邻牛祭，不如薄实。'
  },
  696996: {
    61: '泥井无水，鸟不光顾。',
    64: '修整井壁，修而无用。',
    66: '无盖任汲，汲而立信。',
    92: '漏罐滴水，只养小鱼。',
    93: '虽清不用，求上赐福。',
    95: '井水甜美，自有人用。'
  },
  699666: {
    61: '始生乱合，求之而握。',
    62: '内心虔诚，供品微薄。',
    63: '聚合唉叹，去而无祸。',
    66: '叹气哭泣，未能相合。',
    94: '以吉补过，有吉无祸。',
    95: '位正未信，持德守恒。'
  },
  699669: {
    62: '交与小人，自失丈夫。',
    63: '守正自处，不偏不失。',
    66: '善念坚固，维系广众。',
    91: '从善如流，必能广交。',
    94: '有人随己，以正以明。',
    95: '信任好人，自必高尚。'
  },
  699696: {
    61: '臀困于株，三年幽谷。',
    63: '石压藜挡，归而无嫁。',
    66: '困于葛藤，动辄犹疑。',
    92: '困于享乐，不动无祸。',
    94: '缓困华车，有行无吝。',
    95: '位高心困，缓图出脱。'
  },
  699699: {
    63: '讨好求和，必有凶险。',
    66: '引诱凑和，无荣可光。',
    91: '和气生谐，和谐呈祥。',
    92: '诚实可信，无悔无灾。',
    94: '喜而不安，憎邪节操。',
    95: '结诚小人，有凶无吉。'
  },
  699966: {
    61: '向外发展，应走出去。',
    62: '把握准则，可御风险。',
    66: '空口难信，不能感人。',
    93: '盲目跟随，其必有险。',
    94: '怀私与交，有朋不多。',
    95: '槁木无情，自我封闭。'
  },
  699969: {
    62: '具备变革，可变方吉。',
    66: '变于皮毛，止变则安。',
    91: '牛皮之带，拴而可牢。',
    93: '急动生凶，稳进生信。',
    94: '信志改命，可获吉成。',
    95: '虎变新纹，文彩亮昭。'
  },
  699996: {
    61: '内心虔诚，何用装饰。',
    66: '强行囚度，必沉水底。',
    92: '枯杨生枝，可得少妻。',
    93: '财大气粗，求他何益。',
    94: '求之无望，遗憾不及。',
    95: '老妻少夫，何以生育。'
  },
  699999: {
    66: '号令不行，凶险难逃。',
    91: '鲁莽前闯，力不胜任。',
    92: '日夜警惕，虽战不忧。',
    93: '逞怒招凶，隐志图克。',
    94: '行走不便，忠言不信。',
    95: '除苋务决，不可偏激。'
  },
  966666: {
    61: '毁床剥脚，固执生凶。',
    62: '剥落床板，无亲无靠。',
    63: '剥损之期，上下走失。',
    64: '剥足除板，无处眠身。',
    65: '待上宠幸，灭顶可免。',
    96: '硕果未吃，小人勿用。'
  },
  966669: {
    62: '求下求上，自养无力。',
    63: '不善自养，此人何用。',
    64: '自补自过，自能自给。',
    65: '违背常理，龟缩难行。',
    91: '不劳无食，看人有吃。',
    96: '知险谨行，养育大家。'
  },
  966696: {
    61: '教之以严，束之以法。',
    63: '见男失礼，此女勿娶。',
    64: '陷于蒙昧，离师可悲。',
    65: '尊师好学，脱蒙有望。',
    92: '宽怀包容，娶妻立业。',
    96: '惩罚以法，抑蛮用诲。'
  },
  966699: {
    63: '三人同行，不如独专。',
    64: '行于快速，减于过失。',
    65: '得人献龟，天佑人佑。',
    91: '有朋遇损，理当往援。',
    92: '往援必凶，不损益人。',
    96: '损己益人，深孚众心。'
  },
  966966: {
    61: '始而停之，久而无咎。',
    62: '受制于人，心中不悅。',
    64: '安身止行，不动无咎。',
    65: '面静舌清，过错自消。',
    93: '止腰伤背，烟火薰心。',
    96: '稳重扎实，可得厚终。'
  },
  966969: {
    62: '打扮胡须，仿上而行。',
    64: '淡雅宜人，非匪乃婚。',
    65: '饰于野外，絲妆吝吉。',
    91: '饰脚弃车，徒步而行。',
    93: '光泽照人，权宜之计。',
    96: '内心喜悅，外饰文白。'
  },
  966996: {
    61: '子正父弊，免父之过。',
    64: '容忍父过，其果不堪。',
    65: '正父之过，勿损其誉。',
    92: '纠母之过，刚柔适中。',
    93: '子正父弊，子亦无咎。',
    96: '以节治心，不事治人。'
  },
  966999: {
    64: '爱护幼牛，保护贤能。',
    65: '阉猪留牙，有凶无害。',
    91: '见险即停，量力而行。',
    92: '车身脱挂，自行停止。',
    93: '良马奔驰，仍须谨慎。',
    96: '大道之行，四通八达。'
  },
  969666: {
    61: '进与不进，泰然处之。',
    62: '以进为忧，知足乃福。',
    63: '受人信任，具备升进。',
    65: '不畏刚正，明德生吉。',
    94: '五技之鼠，贪而人畏。',
    96: '进至兽角，无德恃刚。'
  },
  969669: {
    62: '咬皮遮鼻，虽过无咎。',
    63: '腊肉有毒，难咬不顺。',
    65: '咬嚼干肉，刚柔适中。',
    91: '足套刑具，不行不灾。',
    94: '咬嚼肉骨，既难且硬。',
    96: '不聪不明，大枷遮耳。'
  },
  969696: {
    61: '过河湿腰，未得其道。',
    63: '急进有险，难涉大川。',
    65: '言行一致，光辉吉祥。',
    92: '提带过河，方为得道。',
    94: '苦伐三载，方可奏功。',
    96: '饮酒持量，酗酒生疯。'
  },
  969699: {
    63: '行而受制，终或化吉。',
    65: '亲情未断，理应往攀。',
    91: '马跑勿追，恶人勿拒。',
    92: '与上巷遇，不期而见。',
    94: '孤远无应，幸遇得援。',
    96: '欲射猪鬼，却遇求亲。'
  },
  969966: {
    61: '滞留他乡，琐碎下贱。',
    62: '守正得道，利裕身安。',
    65: '一射中的，声名大扬。',
    93: '火烧仆逃，守正以防。',
    94: '长客他乡，心存不爽。',
    96: '烧巢失牛，先笑后哭。'
  },
  969969: {
    62: '人品美德，持之不怠。',
    65: '泪水不断，忧愁感叹。',
    91: '步伐错乱，谨守原则。',
    93: '斜阳西挂，且歌且嗟。',
    94: '天火突燃，死灰一堆。',
    96: '出征立功，抓大放小。'
  },
  969996: {
    61: '颠鼎倒废，收妾生子。',
    65: '耳空鼎杠，利于守正。',
    92: '鼎內充实，仇害亦消。',
    93: '路塞羹凉，雨后咎消。',
    94: '折鼎泼粥，汗流滿面。',
    96: '鼎有玉铉，大吉大利。'
  },
  969999: {
    65: '真诚感人，诚亦壮威。',
    91: '无交无害，富骄必害。',
    92: '积累虽厚，勿忘苦创。',
    93: '君子献公，小人作歹。',
    94: '盛而不骄，深明事理。',
    96: '人贤天助，盛而不衰。'
  },
  996666: {
    61: '小人之见，君子之悲。',
    62: '门缝偷窺，女道亦丑。',
    63: '自观自身，自断自非。',
    64: '阅察大局，宜请高宾。',
    95: '察己察人，教化自明。',
    96: '观上察己，方识自志。'
  },
  996669: {
    62: '守正得珍，天帝赐福。',
    63: '增益于人，诚中上稟。',
    64: '中行公告，王者重用。',
    91: '地位虽低，行为益人。',
    95: '惠人取信，恩必有报。',
    96: '他不益人，无人益他。'
  },
  996696: {
    61: '援助得力，方可获吉。',
    63: '水冲自身，自得净化。',
    64: '水冲众吉，山垮亦吉。',
    92: '水冲圬浊，人心方快。',
    95: '水冲宫廷，不为过失。',
    96: '水血远抛，避之求吉。'
  },
  996699: {
    63: '得敌如友，鼓息歌泣。',
    64: '月过十五，马失良伴。',
    91: '心安必祥，牵挂不安。',
    92: '鹤鸣山阴，有酒同靡。',
    95: '失伴独专，一心求进。',
    96: '鸡鸣于天，应防凶险。'
  },
  996966: {
    61: '雁临水滩，说险不险。',
    62: '雁落磐石，平安吉祥。',
    64: '雁落于枝，或亦无灾。',
    93: '雁飞小山，有去无回。',
    95: '雁飞高岗，三年不孕。',
    96: '雁临高山，吉祥如仪。'
  },
  996969: {
    62: '和气共事，合家安宁。',
    64: '家积富余，一顺百顺。',
    91: '合家合心，家法当行。',
    93: '家谨则安，家嘻则乱。',
    95: '家主楷模，必扬家风。',
    96: '持爱生威，正己正人。'
  },
  996996: {
    61: '进退两难，果敢决断。',
    64: '有收有获，得于顺应。',
    92: '深隐不露，诚恳不烦。',
    93: '朝令夕改，胸无良谋。',
    95: '除弊兴治，变乱为治。',
    96: '隐而有失，凶亦守正。'
  },
  996999: {
    64: '开诚和合，免灾无惧。',
    91: '回归原地，无害有益。',
    92: '与人同归，礼义双全。',
    93: '车散轮脱，夫妻反目。',
    95: '富贵分享，亲邻合作。',
    96: '阴盛阳衰，警惕藏凶。'
  },
  999666: {
    61: '加强团结，守正不动。',
    62: '拍马逢迎，不可入群。',
    63: '包围笼络，厚颜无耻。',
    94: '顺天应时，行动无过。',
    95: '拨乱反正，须拔绊根。',
    96: '闭暗难久，顺时而动。'
  },
  999669: {
    62: '不图侥幸，稳实有得。',
    63: '路人牵牛，殃及邻里。',
    91: '不存虚妄，进必得志。',
    94: '能守正道，自然无过。',
    95: '无故得病，不治可愈。',
    96: '虽无妄求，亦然贫穷。'
  },
  999696: {
    61: '争论难免，理明即息。',
    63: '恪守本份，有功不争。',
    92: '争而不胜，不如避之。',
    94: '有争勿予，好争应改。',
    95: '与人评理，应持公正。',
    96: '虽获胜争，亦不足取。'
  },
  999699: {
    63: '瞎跛追比，虎伤上弃。',
    91: '守本无非，有道当行。',
    92: '坚守正道，心境自安。',
    94: '虎尾谨行，或可遂愿。',
    95: '刚强果断，守正防危。',
    96: '行为合礼，一生大吉。'
  },
  999966: {
    61: '退而莫后，后而莫退。',
    62: '退而被拴，心不思退。',
    93: '牵制缠身，慎处小人。',
    94: '心安理得，避则慑小。',
    95: '退得时机，功成志遂。',
    96: '远走高飞，无所不利。'
  },
  999969: {
    62: '仅赖宗亲，其力不支。',
    91: '出门结友，广交为益。',
    93: '伏草察山，三年无功。',
    94: '登城难攻，惊困震醒。',
    95: '先哭后笑，得遇高人。',
    96: '无私无悔，未必大同。'
  },
  999996: {
    61: '拴系守正，瘦猪躁动。',
    92: '包而不显，露则不利。',
    93: '臀掉其肤，行而无险。',
    94: '包而无物，必无人同。',
    95: '杞树罩瓜，自然枯死。',
    96: '相离甚远，无缘无咎。'
  },
  999999: {
    91: '龙潜于水，不必作为。',
    92: '龙现地面，利见大人。',
    93: '终日劳作，时闭无灾。',
    94: '任由跃伏，不生过错。',
    95: '飞龙在天，利见大人。',
    96: '龙飞高极，过份则衰。'
  }
}

class Diagram {
  constructor () {
    this.numberToEightDiagrams = numberToEightDiagrams
    this.numberToThings = numberToThings
    this.thingsToLines = thingsToLines
    this.diagramToIntroduces = diagramToIntroduces
    this.lineNames = lineNames
    this.numberToLines = numberToLines
    this.eightDiagramToLines = eightDiagramToLines
    this.eightDiagramToThings = eightDiagramToThings
    this.diagramToThings = diagramToThings
    this.portraitToDiagrams = portraitToDiagrams
    this.diagramToPortraits = diagramToPortraits
    this.diagramToDescriptions = diagramToDescriptions
    this.currentContact = null
    this.timerId = null
    this.flag = false
  }
  init ({bot, msg, currentContact}) {
    if (!this.currentContact) {
      this.currentContact = currentContact
      bot.sendMsg(
        '不诚不占、不义不占、不疑不占\n\n起卦之前请心中默念你要问的事情，按照如下格式输入三个三位数数字。\n\n如000.000.000',
        msg.FromUserName
      )
      bot
        .sendMsg(
          {
            file: fs.createReadStream('./media/bu_gua.jpg'),
            filename: 'bu_gua.jpg'
          },
          msg.FromUserName
        )
        .catch(err => {
          bot.emit('error', err)
        })
      this.resetTimer(bot, msg)
    }
  }
  run ({bot, msg, content, currentContact}) {
    // 如果用户不一致无需处理
    if (this.currentContact.UserName !== currentContact.UserName) return
    // 非法字符判断
    const numReg = /\d{3}\.\d{3}\.\d{3}/
    this.resetTimer(bot, msg)
    if (!numReg.test(content)) {
      bot.sendMsg('输入内容不符合规范，请重新输入！', msg.FromUserName)
      return
    }
    if (this.flag) {
      bot.sendMsg('请耐心等待，正在进行卦象解析！', msg.FromUserName)
      return
    }
    this.flag = true
    const numArr = content.split('.')
    this.set(numArr[0], numArr[1], numArr[2])
    this.lines = this.getLines()
    this.currentLine = this.getCurrentLineIndex()
    this.currentLineName = this.getLineName()
    this.diagramName = this.getDiagram()
    this.diagramThings = this.getThings()
    this.diagramPortrait = this.getPortrait()
    this.diagramIntroduce = this.getIntroduces()
    this.diagramDescription = this.getDescription()
    this.lineDescription = this.getLineDescription()
    const sendText = `${this.drawDiagram()}\n${this.diagramThings}\n\n${
      this.diagramName
    } ${this.diagramPortrait}\n\n${this.diagramIntroduce}\n\n${
      this.diagramDescription
    }\n\n${this.currentLineName}\n${this.lineDescription}`
    bot.sendMsg(sendText, msg.FromUserName)
    bot
      .gptRequest({
        method: 'POST',
        url: API_CONFIG.chatUrl,
        data: {messages: [{role: 'user', content: `请解析一下这个卦象，${this.diagramDescription}`}]}
      }).then(res => {
        clearTimeout(this.timerId)
        bot.sendMsg(res.data + '\n占卜结束！', msg.FromUserName)
        this.flag = false
        bot.emit('exitGame', msg.FromUserName)
      })
  }

  resetTimer (bot, msg) {
    if (this.timerId) {
      clearTimeout(this.timerId)
    }
    this.timerId = setTimeout(() => {
      bot.sendMsg('超时，占卜已自动退出', msg.FromUserName)
      bot.emit('exitGame', msg.FromUserName)
    }, 60000)
  }

  set (firstNum, secondNum, thirdNum) {
    this.firstNum = this.getNumber8(firstNum % 8)
    this.secondNum = this.getNumber8(secondNum % 8)
    this.thirdNum = this.getNumber6(thirdNum % 6)

    this.firstDiagram = ''
    this.secondDiagram = ''

    this.firstThings = ''
    this.secondThings = ''

    this.line = ''
    this.lineName = ''
    this.lineDescription = ''
    this.lines = ''
    this.things = ''
    this.diagram = ''
    this.portrait = ''
    this.introduces = ''
    this.description = ''
  }

  drawDiagram () {
    // 9 为drawLine 6 为drawHalfLine
    const lineArr = this.lines.split('')
    let drawStr = ''
    for (let i = 0; i < lineArr.length; i++) {
      if (lineArr[i] === '9') {
        drawStr += this.drawLine() + '\n'
      } else if (lineArr[i] === '6') {
        drawStr += this.drawHalfLine() + '　' + this.drawHalfLine() + '\n'
      }
    }
    return drawStr
  }
  drawLine () {
    return '▅▅▅▅▅▅▅▅▅'
  }
  drawHalfLine () {
    return '▅▅▅▅'
  }

  checkNumberLength (num) {
    if (num.length !== 3) {
      return false
    }
    return true
  }
  getCurrentLineIndex () {
    return this.thirdNum
  }
  getFirstDiagram () {
    if (this.firstDiagram) {
      return this.firstDiagram
    }
    this.firstDiagram = this.numberToEightDiagrams[this.firstNum]
    return this.firstDiagram
  }
  getSecondDiagram () {
    this.secondDiagram = ''
    if (this.secondDiagram) {
      return this.secondDiagram
    }
    this.secondDiagram = this.numberToEightDiagrams[this.secondNum]
    return this.secondDiagram
  }
  getFirstThings () {
    if (this.firstThings) {
      return this.firstThings
    }
    this.firstThings = this.numberToThings[this.firstNum]
    return this.firstThings
  }
  getSecondThings () {
    if (this.secondThings) {
      return this.secondThings
    }
    this.secondThings = this.numberToThings[this.secondNum]
    return this.secondThings
  }
  getLine () {
    if (this.line) {
      return this.line
    }
    var revers = this.getLines().split('').reverse().join('')
    this.line = revers.substring(this.thirdNum - 1, this.thirdNum)
    return this.line
  }
  // 动爻
  getLineName () {
    if (this.lineName) {
      return this.lineName
    }
    this.lineName = this.lineNames[this.getLine() + this.thirdNum]
    return '动爻: ' + this.lineName
  }
  getLines () {
    if (this.lines) {
      return this.lines
    }
    this.lines =
      this.thingsToLines[this.getSecondThings()] +
      this.thingsToLines[this.getFirstThings()]
    return this.lines
  }
  // 动爻描述
  getLineDescription () {
    if (this.lineDescription) {
      return this.lineDescription
    }
    this.lineDescription =
      this.numberToLines[this.getLines()][this.getLine() + this.thirdNum]
    return this.lineDescription
  }
  getThings () {
    if (this.things) {
      return this.things
    }
    this.things = this.getSecondThings() + this.getFirstThings()
    return this.things
  }
  getDiagram () {
    if (this.diagram) {
      return this.diagram
    }
    this.diagram = this.portraitToDiagrams[this.getThings()]
    return this.diagram
  }
  getPortrait () {
    if (this.portrait) {
      return this.portrait
    }
    this.portrait = this.diagramToPortraits[this.getDiagram()]
    return this.portrait
  }
  // 卦辞
  getIntroduces () {
    if (this.introduces) {
      return this.introduces
    }
    this.introduces = this.diagramToIntroduces[this.getDiagram()]
    return '卦辞: ' + this.introduces
  }
  // 卦辞描述
  getDescription () {
    if (this.description) {
      return this.description
    }
    this.description = this.diagramToDescriptions[this.getDiagram()]
    return this.description
  }
  getDiagramLine () {
    var obj = []
    for (var key in numberToLines) {
      var v = numberToDiagrams[key] + '卦'
      var children = []
      for (var k in numberToLines[key]) {
        children.push({ label: lineNames[k], value: lineNames[k] })
      }
      obj.push({ label: v, value: v, children: children })
    }
  }
  getDiagramPhoto () {
    return this.getLines()
  }
  getNumber8 (num) {
    if (num === 0) {
      return '8'
    }
    return num + ''
  }
  getNumber6 (num) {
    if (num === 0) {
      return '6'
    }
    return num + ''
  }
}

export default Diagram
